<html>
  <head>
    <title>Grails Runtime Exception</title>
    <style type="text/css">
      .errorMessage {
        border: 1px solid black;
        padding: 5px;
        background-color:#E9E9E9;
      }
      .stack {
        border: 1px solid black;
        padding: 5px;
        overflow:auto;
        height: 300px;
      }
      .snippet {
        padding: 5px;
        background-color:white;
        border:1px solid black;
        margin:3px;
        font-family:courier;
      }

      strong{
        color: #006dba;
      }

      .error{
        color: red;
      }

    </style>
  </head>
  <content tag="menu"></content>
  <body>
    <div class="body">
      <h1 class="error">Grails Runtime Exception</h1>
      <h2 class="error">Error Details</h2>
      <div class="errorMessage">
        <strong>Error ${request.'javax.servlet.error.status_code'}:</strong> ${request.'javax.servlet.error.message'.encodeAsHTML()}<br/>
        <strong>Servlet:</strong> ${request.'javax.servlet.error.servlet_name'}<br/>
        <strong>URI:</strong> ${request.'javax.servlet.error.request_uri'}<br/>
        <g:if test="${exception}">
          <strong>Exception Message:</strong> ${exception.message?.encodeAsHTML()} <br />
          <strong>Caused by:</strong> ${exception.cause?.message?.encodeAsHTML()} <br />
          <strong>Class:</strong> ${exception.className} <br />
          <strong>At Line:</strong> [${exception.lineNumber}] <br />
          <strong>Code Snippet:</strong><br />
          <div class="snippet">
            <g:each var="cs" in="${exception.codeSnippet}">
              ${cs?.encodeAsHTML()}
              <br />
            </g:each>
          </div>
        </g:if>
      </div>
      <g:if test="${exception}">
        <h2 class="error">Stack Trace</h2>
        <div class="stack">
          <pre><g:each in="${exception.stackTraceLines}">${it.encodeAsHTML()}<br/></g:each></pre>
        </div>
      </g:if>
    </div>
  </body>
</html>